package com.ddwl.schema.vo.order;

import com.ddwl.schema.vo.user.UserVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.Instant;
import java.util.List;

/**
 * 类OrderInfoListVo.java的实现描述：订单详情列表
 *
 * @author zach
 * @Instant :2020-06-02 15:03.
 */
@Data
@ApiModel("订单详情列表")
public class OrderInfoListVo {

    @ApiModelProperty("订单号")
    private String id;

    @ApiModelProperty("付款方式0一次性结清1.分批结清")
    private Integer payType;

    @ApiModelProperty("用户ID")
    private String userId;

    @ApiModelProperty("用户名称")
    private String userName;

    @ApiModelProperty("用户信息")
    private UserVo user;

    @ApiModelProperty("商品件数（相同的商品只记一件）")
    private Integer itemCount;

    @ApiModelProperty("订单金额")
    private BigDecimal amount;

    @ApiModelProperty("实际应支付金额")
    private BigDecimal realAmount;

    @ApiModelProperty("已支付金额")
    private BigDecimal payAmount;

    @ApiModelProperty("当前需要付款多少钱")
    private BigDecimal thisPayAmount;

    @ApiModelProperty("结算状态（0未结算10结算中20结算成功30结算失败）")
    private Integer settlementStatus;

    @ApiModelProperty("订单备注")
    private String note;

    @ApiModelProperty("订单支付时间")
    private Instant payTime;

    @ApiModelProperty("订单关闭时间")
    private Instant closeTime;

    @ApiModelProperty("确认收货时间")
    private Instant confirmTime;

    @ApiModelProperty("订单过期时间")
    private Instant expirationTime;

    @ApiModelProperty("订单开始支付时间")
    private Instant startPayTime;

    @ApiModelProperty("订单完成时间")
    private Instant finishTime;

    @ApiModelProperty("支付方式0微信1支付宝")
    private String paymentType;

    @ApiModelProperty("发货时间")
    private Instant deliveryTime;

    @ApiModelProperty("订单状态 0 未支付 1已支付 2已发货 3 已签收 4已取消 5 退款中 6已退款 7付款超时关闭")
    private Integer status;

    @ApiModelProperty("创建时间")
    private Instant gmtCreated;

    @ApiModelProperty("订单商品信息")
    List<OrderSpuVo> spus;

    @ApiModelProperty("订单阶段支付信息")
    List<OrderPhaseVo> phaseVos;

    @ApiModelProperty("后台备注")
    private String remark;
    @ApiModelProperty("是否售后 是否进行售后(0否 1进行中 2结束)")
    private Integer isAfterSale;
    @ApiModelProperty("申请售后次数")
    private Integer afterSaleCount;

    @ApiModelProperty("是否秒杀订单 (0否 1是)")
    private Integer isSeckill;

    @ApiModelProperty("订单类型 (0普通订单 1秒杀单 2砍价单 3限时购 4打折)")
    private Integer orderType;

    @ApiModelProperty("0快递1外送2自提")
    private Integer deliveryType;

    @ApiModelProperty("店铺Id")
    private String shopId;
    @ApiModelProperty("店铺名称")
    private String shopName;

    @ApiModelProperty("0平台订单1店铺订单")
    private Integer platformTag;

    @ApiModelProperty("运费")
    private BigDecimal fare;
}
